↳ PROLOG
↳ UnrequestedClauseRemoverProof
The clauses
concatenate3({}0, L, L).
concatenate3(.2(X, L1), L2, .2(X, L3)) :- concatenate3(L1, L2, L3).
member2(X, .2(X, L)).
member2(X, .2(Y, L)) :- member2(X, L).
reverse2(L, L1) :- reverseconcatenate3(L, {}0, L1).
can be ignored, as they are not needed by any of the given querys.
Deleting these clauses results in the following prolog program:
reverseconcatenate3({}0, L, L).
reverseconcatenate3(.2(X, L1), L2, L3) :- reverseconcatenate3(L1, .2(X, L2), L3).
↳ PROLOG
↳ UnrequestedClauseRemoverProof
↳ PROLOG
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
reverse_concatenate3: (b,b,f)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
reverse_concatenate_3_in_gga3([]_0, L, L) -> reverse_concatenate_3_out_gga3([]_0, L, L)
reverse_concatenate_3_in_gga3(._22(X, L1), L2, L3) -> if_reverse_concatenate_3_in_1_gga5(X, L1, L2, L3, reverse_concatenate_3_in_gga3(L1, ._22(X, L2), L3))
if_reverse_concatenate_3_in_1_gga5(X, L1, L2, L3, reverse_concatenate_3_out_gga3(L1, ._22(X, L2), L3)) -> reverse_concatenate_3_out_gga3(._22(X, L1), L2, L3)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ UnrequestedClauseRemoverProof
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
reverse_concatenate_3_in_gga3([]_0, L, L) -> reverse_concatenate_3_out_gga3([]_0, L, L)
reverse_concatenate_3_in_gga3(._22(X, L1), L2, L3) -> if_reverse_concatenate_3_in_1_gga5(X, L1, L2, L3, reverse_concatenate_3_in_gga3(L1, ._22(X, L2), L3))
if_reverse_concatenate_3_in_1_gga5(X, L1, L2, L3, reverse_concatenate_3_out_gga3(L1, ._22(X, L2), L3)) -> reverse_concatenate_3_out_gga3(._22(X, L1), L2, L3)
REVERSE_CONCATENATE_3_IN_GGA3(._22(X, L1), L2, L3) -> IF_REVERSE_CONCATENATE_3_IN_1_GGA5(X, L1, L2, L3, reverse_concatenate_3_in_gga3(L1, ._22(X, L2), L3))
REVERSE_CONCATENATE_3_IN_GGA3(._22(X, L1), L2, L3) -> REVERSE_CONCATENATE_3_IN_GGA3(L1, ._22(X, L2), L3)
reverse_concatenate_3_in_gga3([]_0, L, L) -> reverse_concatenate_3_out_gga3([]_0, L, L)
reverse_concatenate_3_in_gga3(._22(X, L1), L2, L3) -> if_reverse_concatenate_3_in_1_gga5(X, L1, L2, L3, reverse_concatenate_3_in_gga3(L1, ._22(X, L2), L3))
if_reverse_concatenate_3_in_1_gga5(X, L1, L2, L3, reverse_concatenate_3_out_gga3(L1, ._22(X, L2), L3)) -> reverse_concatenate_3_out_gga3(._22(X, L1), L2, L3)
↳ PROLOG
↳ UnrequestedClauseRemoverProof
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
REVERSE_CONCATENATE_3_IN_GGA3(._22(X, L1), L2, L3) -> IF_REVERSE_CONCATENATE_3_IN_1_GGA5(X, L1, L2, L3, reverse_concatenate_3_in_gga3(L1, ._22(X, L2), L3))
REVERSE_CONCATENATE_3_IN_GGA3(._22(X, L1), L2, L3) -> REVERSE_CONCATENATE_3_IN_GGA3(L1, ._22(X, L2), L3)
reverse_concatenate_3_in_gga3([]_0, L, L) -> reverse_concatenate_3_out_gga3([]_0, L, L)
reverse_concatenate_3_in_gga3(._22(X, L1), L2, L3) -> if_reverse_concatenate_3_in_1_gga5(X, L1, L2, L3, reverse_concatenate_3_in_gga3(L1, ._22(X, L2), L3))
if_reverse_concatenate_3_in_1_gga5(X, L1, L2, L3, reverse_concatenate_3_out_gga3(L1, ._22(X, L2), L3)) -> reverse_concatenate_3_out_gga3(._22(X, L1), L2, L3)
↳ PROLOG
↳ UnrequestedClauseRemoverProof
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
REVERSE_CONCATENATE_3_IN_GGA3(._22(X, L1), L2, L3) -> REVERSE_CONCATENATE_3_IN_GGA3(L1, ._22(X, L2), L3)
reverse_concatenate_3_in_gga3([]_0, L, L) -> reverse_concatenate_3_out_gga3([]_0, L, L)
reverse_concatenate_3_in_gga3(._22(X, L1), L2, L3) -> if_reverse_concatenate_3_in_1_gga5(X, L1, L2, L3, reverse_concatenate_3_in_gga3(L1, ._22(X, L2), L3))
if_reverse_concatenate_3_in_1_gga5(X, L1, L2, L3, reverse_concatenate_3_out_gga3(L1, ._22(X, L2), L3)) -> reverse_concatenate_3_out_gga3(._22(X, L1), L2, L3)
↳ PROLOG
↳ UnrequestedClauseRemoverProof
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
REVERSE_CONCATENATE_3_IN_GGA3(._22(X, L1), L2, L3) -> REVERSE_CONCATENATE_3_IN_GGA3(L1, ._22(X, L2), L3)
↳ PROLOG
↳ UnrequestedClauseRemoverProof
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
REVERSE_CONCATENATE_3_IN_GGA2(._22(X, L1), L2) -> REVERSE_CONCATENATE_3_IN_GGA2(L1, ._22(X, L2))
From the DPs we obtained the following set of size-change graphs: